﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace POVRay {
    [PRBlock("finish")]
    public class Finish : Block {

        [PRParam("ambient")]
        public Color? Ambient { get; set; }

        [PRParam("diffuse")]
        public float? Diffuse { get; set; }

        [PRParam("phong")]
        public float? Phong { get; set; }

        [PRParam("phong_size")]
        public float? PhongSize { get; set; }

        [PRParam("specular")]
        public float? Specular { get; set; }

        [PRParam("roughness")]
        public float? Routhness { get; set; }

        [PRParam()]
        public Reflection Reflection { get; set; }

        [PRParam("conserve_energy", HasValue = false)]
        public bool ConserveEnergy { get; set; }

        [PRParam("brilliance")]
        public float? Brilliance { get; set; }

        [PRParam("metallic")]
        public float? Metallic { get; set; }

        [PRParam("crand")]
        public float? Crand { get; set; }

        [PRParam()]
        public Iridescence Iridescence { get; set; }

        public Finish() {
        }

        public override string ToString(int level) {
            return this.POVRayString(level);
        }
    }
}
